In recent years, the Internet has attracted attention as a means for exchanging information. As devices which are connectable to the Internet, such as personal computers, mobile terminals, handy phones and the like, are increasing, the Internet has come into general use. The WWW (World Wide Web) is the most popular system for providing information through the Internet, and the WWW employs the HTTP (Hyper Text Transfer Protocol) as a data transmission protocol.
FIG. 17 is a diagram illustrating the flow of messages between a data transmission apparatus (HTTP server) 1702 and a data reception/playback apparatus (HTTP client) 1701 using the HTTP.
Initially, the data reception/playback apparatus 1701 conducts an HTTP connection to the transmission apparatus 1702, and transmits a request for data transmission 1703. The transmission request 1703 is given an identifier corresponding to data (hereinafter referred to as data identifier 1704), which is called a URI (Universal Resource Identifier), whereby the data reception/playback apparatus 1701 can request the transmission apparatus 1702 to transmit desired data. The transmission apparatus 1702 analyzes the transmission request 1703, stores the data corresponding to the data identifier 1704 in a transmission response 1705, and transmits the data of the transmission response 1705 to the data reception/playback apparatus 1701. The data reception/playback apparatus 1701 then receives the transmission response 1705. Through the above-mentioned procedure, the data reception/playback apparatus 1701 can take (obtain) desired data from the transmission apparatus 1702.
Conventionally, data of texts, still pictures and the like have mainly been transmitted through the Internet. However, with the enlargement of network bands and the advance or audio/video compression technology in recent years, the Internet can be employed for information provision services using audio and video.
Hereinafter, with reference to FIGS. 18 and 19 a description will be given of the construction of a data reception/playback apparatus for receiving and playing stream data of audio and video, and the construction of a data transmission apparatus for transmitting stream data of audio and video to the data reception/playback apparatus.
FIG. 18 is a block diagram illustrating the construction of the data reception/playback apparatus 1701. The data reception/playback apparatus 1701 comprises: a transmission request sending means 1803 for sending a transmission request 1804; a reception (receiving) means 1806 for receiving, from the transmission apparatus 1702, a transmission response 1805 to the transmission request 1804; a reception buffer 1808 for storing the data that is received by the reception means 1806; a playback means 1812 for playing the stream data that is stored in the reception buffer 1808; and a control means 1801 for controlling the respective means mentioned above.
The data reception/playback apparatus 1701 so constructed operates as follows.
The control means 1801 instructs the transmission request sending means 1803 to send a transmission request (instruction signal 1802). The transmission request sending means 1803 sends a transmission request 1804 to the transmission apparatus 1702 according to the instruction 1802 of the control means 1801. Upon receipt of the transmission request 1804, the transmission apparatus 1702 sends a transmission response 1805 to the receiving/playback apparatus 1701. As the result, the receiving means 1806 receives the transmission response 1805.
The receiving means 1806 stores data 1807 of the transmission response 1805 in the reception buffer 1808. At this time, the receiving means 1806 sends a notice of reception 1809 to the control means 1801. Upon receipt of the notice of reception 1809, the control means 1801 instructs the playback means 1812 to play the data 1811 that is stored in the reception buffer 1808 (instruction signal 1810). The playback means 1812 plays the data 1811 that is read from the reception buffer 1808, and outputs the played data as an output signal 1813.
Next, a description will be given of the transmission apparatus 1702. FIG. 19 is a block diagram illustrating the construction of the transmission apparatus 1702. The transmission apparatus 1702 comprises: a transmission request reception means 1902 for receiving and analyzing a transmission request 1901 from the reception/playback apparatus 1701; a file selection means 1904 for selecting, from a data storage means 1907, a file corresponding to a data identifier (URI) 1903 which is included in the transmission request 1901 (in this description, a file is defined as stream data which is recorded in a specific format); a file reading means 1906 for reading data from the file according to an instruction 1905 of the file selection means 1904; and a transmission means 1909 for transmitting the data that is read by the file reading means 1906.
The transmission apparatus 1702 so constructed operates as follows. The transmission request reception means 1902 receives and analyzes the transmission request 1901. Then, the transmission request reception means 1902 extracts the data identifier 1903 from the transmission request 1901, and informs the file selection means 1904 of the data identifier 1903. The file selection means 1904 selects a file corresponding to the data identifier 1903 from the data storage means 1907, and informs the file reading means 1906 of the selected file 1905. The file reading means 1906 reads data of the selected file 1905 from the data storage means 1907. The transmission means 1909 transmits the data 1908 that is read by the file reading means 1906 as a transmission response 1910.
As described above, the reception/playback apparatus 1701 plays the audio or video that is transmitted from the transmission apparatus 1702 through the network.
Further, FIG. 9 shows the case where plural stream data are simultaneously received and synchronously played by using the data reception/playback apparatus 1701 and the data transmission apparatus 1702. As shown in FIG. 9, the data reception/playback apparatus 1701 outputs a transmission request for plural stream data to the transmission apparatus 1702 by using plural HTTP connections, and receives the plural stream data simultaneously to play them synchronously.
However, since the HTTP is not a protocol which is designed for audio/video transmission, HTTP cannot provide playback control functions which are useful in audio/video playback, such as a playback from some midpoint in stream data, a suspension of playback, a change of playback speed, and the like.
Further, when a delay in data transmission occurs due to network congestion which causes data transmission to be halted at some midpoint in the stream data being received, data playback is halted because the conventional data reception/playback apparatus cannot perform data playback from the midpoint in the stream data, resulting in lack of real-time performance in data playback.
In order to solve the above-mentioned problems, there is a move afoot to construct a protocol for audio and video only, aside from the HTTP. However, such protocol for audio and video only will be an unprecedented one and, therefore, much time and cost will be spent before it is widely available.
Further, according to the HTTP, the quantity of data to be transmitted is controlled according to network congestion. However, when performing synchronous playback of plural stream data while receiving them simultaneously, since the quantity of data to be transmitted should be controlled for each connection, the quantity of data per unit time will vary from connection to connection.
Hereinafter, this problem will be described more specifically with reference to FIGS. 10 and 11.
FIG. 10 is a graph illustrating an example of the quantity of data that is stored in the reception buffer of the data reception/playback apparatus (hereinafter referred to as “buffer quantity”). The abscissa shows the time, and the ordinate shows the buffer quantity. The data received by the reception means is successively input to the reception buffer, and the stored data is successively taken out by the playback means. FIG. 10 shows the case where two streams of data 1001 and 1002 are received and played simultaneously.
In FIG. 10, the quantity of received data gradually decreases due to network congestion or the like, and the data of the stream 1 (1001) runs out at time T1 (1003), whereby data playback is halted. Since the stream data 1 cannot be played any more, playback is halted until sufficient data is stored in the reception buffer. In this state, however, synchronous playback of the stream data 1 and the stream data 2 cannot be performed, and therefore, playback of the stream data 2 (1002) is also halted, and playback of the stream data 2 is resumed when a sufficient amount of stream data 1 is stored.
The result is shown in FIG. 11. It is assumed that the stream data 1 (1101) in the reception buffer runs out at time T1 (1103). At this time, playbacks of the stream data 1 and the stream data 2 (1002) are stopped simultaneously. However, since data reception is still continued in the connection of the stream data 2, the maximum buffer quantity is exceeded at time T2 (1104). As the result, synchronous playback of plural stream data while receiving them simultaneously cannot be achieved.